#define _CRT_SECURE_NO_WARNINGS 1


//#include<map>
//#include<vector>
//#include<iostream>
//
//using namespace std;
//
//int maxLength(vector<int>& arr)
//{
//    int size = arr.size();
//    int left = 0, right = 0, Max = 0;
//    map<int, int> hash;
//    while (right < size)
//    {
//        while (hash.count(arr[right]))
//        {
//            Max = max(Max, right - left);
//            hash[arr[right]]--;
//            if (hash[arr[right]] == 0)
//            {
//                hash.erase(arr[right]);
//            }
//            left++;
//        }
//        hash[arr[right]]++;
//        right++;
//    }
//    Max = max(Max, right - left);
//    return Max;
//}
//
//int main()
//{
//    vector<int> v = { 2,3,4,5 };
//    cout << maxLength(v) << endl;
//
//	return 0;
//}


#include<vector>
#include<iostream>

using namespace std;

vector<int> Func(vector<int>& v, int k)
{
    auto it = v.begin();
    while (it != v.end())
    {
        if (*it == k)
        {
            v.erase(it);
            break;
        }
        it++;
    }
    vector<int> ret;
    for (auto& e : v)
    {
        if (e != k + 1 && e != k - 1)
        {
            ret.push_back(e);
        }
    }

    return ret;
}

int main()
{
    int n = 0;
    cin >> n;
    vector<int> v(n);
    for (int i = 0; i < n; i++)
    {
        cin >> v[i];
    }
    int score = 0;
    while (v.size() > 0)
    {
        int Max = 0;
        for (auto& e : v)
        {
            if (e > Max)
            {
                Max = e;
            }
        }
        score += Max;
        v = Func(v, Max);
    }
    cout << score << endl;

    return 0;
}